import pygame


class Settings():
    """存储《抵御外星人》的所有设置的类"""

    def __init__(self):
        """初始化游戏的静态设置"""
        # 屏幕设置
        self.screen_width = 1200  # 游戏界面宽度
        self.screen_height = 700  # 游戏界面高度
        self.bg_color = (230, 230, 230)  # 游戏界面背景
        # 飞船的设置
        self.ship_limit = 3  # 表示玩家拥有的飞船数量
        # 子弹设置
        self.bullet_width = 3  # 子弹宽度
        self.bullet_height = 15  # 子弹高度
        self.bullet_color = 60, 60, 60  # 子弹颜色
        self.bullets_allowed = 3  # 界面中允许同时存在的子弹数量
        # 外星人设置
        self.fleet_drop_speed = 5  # 有外星人触碰到界面边缘时，所有外星人的下降速度
        # 加快游戏节奏的速度
        self.speedup_scale = 1.1  # 1.1表示下一关的所有速度提升10%
        # 外星人点数的提高速度
        self.score_scale = 1.5  # 1.5表示下一关每消灭一个外星人的得分提高50%
        self.initalize_dynamic_settings()

    def initalize_dynamic_settings(self):
        """初始化随游戏进行而变化的设置"""
        self.ship_speed_factor = 1.5  # 飞船移动速度
        self.bullet_speed_factor = 1  # 子弹飞行速度
        self.alien_speed_factor = 0.5  # 外星人横向移动的速度
        # fleet_direction为1表示向右，为-1表示向左
        self.fleet_direction = 1  # 外星人横向移动先向左还是向右
        # 记分
        self.alien_points = 50  # 每消灭一个外星人的得分

    def increase_speed(self):
        """提高速度设置和外星人点数"""
        self.ship_speed_factor *= self.speedup_scale
        self.bullet_speed_factor *= self.speedup_scale
        self.alien_speed_factor *= self.speedup_scale
        self.alien_points = int(self.alien_points * self.score_scale)
        print(self.alien_points)
